package com.witmore.neutron.ai.mcp.server.trading.db.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 股票异动记录表
 * </p>
 *
 * @author 豆子高
 * @since 2025-08-05
 */
@Getter
@Setter
@TableName("scorpion_stock_abnormal_record")
public class ScorpionStockAbnormalRecordDO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @JsonProperty("主键ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 用户ID
     */
    @JsonProperty("用户ID")
    @TableField("user_id")
    private Long userId;

    /**
     * 股票代码
     */
    @JsonProperty("股票代码")
    @TableField("stock_code")
    private String stockCode;

    /**
     * 股票名称
     */
    @JsonProperty("股票名称")
    @TableField("stock_name")
    private String stockName;

    /**
     * 股票当前基本信息JSON
     */
    @JsonProperty("股票基本信息")
    @TableField("stock_basic_info")
    private String stockBasicInfo;

    /**
     * 股票上涨比例
     */
    @JsonProperty("上涨比例")
    @TableField("rise_ratio")
    private BigDecimal riseRatio;

    /**
     * 股票下跌比例
     */
    @JsonProperty("下跌比例")
    @TableField("fall_ratio")
    private BigDecimal fallRatio;

    /**
     * 详细的异动数据JSON
     */
    @JsonProperty("异动数据")
    @TableField("abnormal_data")
    private String abnormalData;

    /**
     * 异动报告类型（如：pdf、excel）
     */
    @JsonProperty("报告类型")
    @TableField("abnormal_report_type")
    private String abnormalReportType;

    /**
     * 异动报告附件链接
     */
    @JsonProperty("报告附件链接")
    @TableField("abnormal_report_attachment_url")
    private String abnormalReportAttachmentUrl;

    /**
     * 创建时间
     */
    @JsonProperty("创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @JsonProperty("更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;

    /**
     * 是否删除 0-未删除 1-已删除
     */
    @JsonProperty("是否删除")
    @TableField("is_deleted")
    private Byte isDeleted;
}
